package com.kgc.scd.service;

import com.kgc.scd.vo.ShopUserCouponVO;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * Created On : 2022/11/16.
 * <p>
 * Author : yantao
 * <p>
 * Description: CouponServerService
 */
@FeignClient("wyyxmall-yt-server")
public interface CouponServerService {

    /**
     * @author : yantao
     * @date   : 2022/11/18
     * @param  : [couponId, userId]
     * @return : java.lang.String
     * @description : 得到优惠券 ,返回优惠券id
     */
    @GetMapping("/ytserver/getCoupons")
    String convertCoupons(@RequestParam("couponId") String couponId,
                          //@RequestParam("categoryId") String categoryId,
                          @RequestParam("userId") String userId);

    /**
     * @author : yantao
     * @date   : 2022/11/18
     * @param  : [userCouponId, categoryId, money, userId]
     * @return : java.util.Map<java.lang.String,java.lang.Object>
     * @description : 验证优惠券状态
     */
    @GetMapping("/ytserver/judgeCoupons")
    Map<String, Object> wouldUseCoupons(@RequestParam("userCouponId") String userCouponId,
                                        @RequestParam("categoryId") String categoryId,
                                        @RequestParam("money") Double money,
                                        @RequestParam("userId") String userId);


    /**
     * @author : yantao
     * @date   : 2022/11/18
     * @param  : [userCouponId]
     * @return : boolean
     * @description : 删除已经使用的优惠券优惠券
     */
    @GetMapping("/ytserver/delectCouponServer")
    boolean deleteUserCoupon(@RequestParam("userCouponId") String userCouponId);


    /**
     * @author : yantao
     * @date   : 2022/11/18
     * @param  : [userId]
     * @return : java.util.List<com.kgc.scd.vo.ShopUserCouponVO>
     * @description : 查看所有的优惠券信息
     */
    @GetMapping("/ytserver/getCouponsAll")
    List<ShopUserCouponVO> queryCouponsAll(@RequestParam("userId") String userId);

    /**
     * @author : yantao
     * @date   : 2022/11/18
     * @param  : [userCouponId]
     * @return : void
     * @description : 进行加积分
     */
    @GetMapping("/ytserver/userUseCoupon")
    void consumeCoupon(@RequestParam("userCouponId") String userCouponId);

}
